/**
 * 混入。
 *
 * @author ChenYong
 * @date 2018-11-07
 */
export default {
    methods: {
        /**
         * 获取公文公告列表。
         *
         * @param config 参数
         * @return {Promise<any>}
         */
        $$getNoticeReceiveList(config) {
            return new Promise((resolve, reject) => {
                if (config) {
                    this.$http.post('/mobile/notice/receive/listData', config).then(({data}) => {
                        if (data && data.content) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 获取公文公告列表。
         *
         * @param config 参数
         * @return {Promise<any>}
         */
        $$getNoticeReceiveDetail(notice_id) {
            return new Promise((resolve, reject) => {
                if (notice_id) {
                    this.$http.post('/mobile/notice/receive/noticeDetailData', {
                        notice_id: notice_id
                    }).then(({data}) => {
                        if (data) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 根据区县编码查询企业。
         *
         * @param config 参数
         * @return {Promise<any>}
         */
        $$getAllEn(config) {
            return new Promise((resolve, reject) => {
                if (config) {
                    this.$http.post('/mobile/enquery/getAllEn', config).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isArray(data.content)) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 查询企业基本信息。
         *
         * @param config 参数
         * @return {Promise<any>}
         */
        $$getEnBaseInfo(config) {
            return new Promise((resolve, reject) => {
                if (config) {
                    this.$http.post('/mobile/enBase/detailBase', config).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isArray(data.content)) {
                            if (data.content.length && data.content[0]) {
                                resolve(data);
                            } else {
                                resolve([]);
                            }
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 查询安全生产基础信息。
         *
         * @param customerId 企业 ID
         * @return {Promise<any>}
         */
        $$getEnBaseSafeProDataDetail(customerId) {
            return new Promise((resolve, reject) => {
                if (customerId) {
                    this.$http.post('/mobile/enBase/safeProDataDetail', {
                        customerId: customerId
                    }).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isArray(data.content)) {
                            if (data.content[0]) {
                                resolve(data);
                            } else {
                                reject(new Error('暂无数据'));
                            }
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 根据企业 ID 查询风险点明细列表。
         *
         * @param config 参数
         * @return {Promise<any>}
         */
        $$getRiskPointDetailList(config) {
            return new Promise((resolve, reject) => {
                if (config) {
                    this.$http.post('/mobile/enquery/getRiskPointDetailList', config).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isArray(data.content)) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 查询媒体类型（大类）。
         *
         * @return {Promise<any>}
         */
        $$getMediaTypeList() {
            return new Promise((resolve, reject) => {
                this.$http.post('/mobile/rdzt/getMediaTypeList').then(({data}) => {
                    if (data &&
                        (data.code === '1') &&
                        this.$isArray(data.content)) {
                        resolve(data);
                    } else {
                        reject(new Error('获取数据失败'))
                    }
                }).catch(e => {
                    reject(e);
                });
            });
        },
        /**
         * 查询热点专题列表。
         *
         * @param config 参数
         * @return {Promise<any>}
         */
        $$getRdztList(config) {
            return new Promise((resolve, reject) => {
                if (config) {
                    this.$http.post('/mobile/rdzt/getList', config).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isArray(data.content)) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 查询热点专题明细。
         *
         * @param id 热点专题 ID
         * @return {Promise<any>}
         */
        $$getRdztDetail(id) {
            return new Promise((resolve, reject) => {
                if (id) {
                    this.$http.post('/mobile/rdzt/detail', {
                        id: id
                    }).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isObject(data.contentMap)) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 随机查询 total 道题目。
         *
         * @param total 题目数量
         * @return {Promise<any>}
         */
        $$questionRandomQuery(total) {
            return new Promise((resolve, reject) => {
                if (total) {
                    this.$http.post('/mobile/onlineTraining/question/randomQuery', {
                        total
                    }).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isArray(data.content)) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 批改答卷。
         *
         * @param answerSheetJson 答卷，json 格式
         * @return {Promise<any>}
         */
        $$correctAnswerSheet(answerSheetJson) {
            return new Promise((resolve, reject) => {
                if (answerSheetJson) {
                    this.$http.post('/mobile/onlineTraining/correct/answerSheet', {
                        answerSheetJson
                    }).then(({data}) => {
                        if (data &&
                            (data.code === '1')) {
                            resolve(data);
                        } else {
                            reject(new Error('提交数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 查询本次培训结果。
         *
         * @param person_id 人员 ID
         * @return {Promise<any>}
         */
        $$trainingLastResult(person_id) {
            return new Promise((resolve, reject) => {
                if (person_id) {
                    this.$http.post('/mobile/onlineTraining/lastResult', {
                        person_id
                    }).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isArray(data.content)) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        },
        /**
         * 查询培训历史记录。
         *
         * @param config 参数
         * @return {Promise<any>}
         */
        $$trainingHistory(config) {
            return new Promise((resolve, reject) => {
                if (config) {
                    this.$http.post('/mobile/onlineTraining/history', config).then(({data}) => {
                        if (data &&
                            (data.code === '1') &&
                            this.$isArray(data.content)) {
                            resolve(data);
                        } else {
                            reject(new Error('获取数据失败'))
                        }
                    }).catch(e => {
                        reject(e);
                    });
                } else {
                    reject(new Error('参数不能为空'));
                }
            });
        }
    }
}
